1. Technical Field
This invention relates to a naive computer system created by layering a shared-nothing operating system with a shared file system. More specifically, the invention relates to mediating access to a shared object in the naive computer system.
2. Description of the Prior Art
A shared-nothing multi-processor is an environment where the processors are interconnected, but each processor has its own memory, cache, and disks. This type of multiprocessing environment is also referred to as a pure cluster. Each processor in a shared-nothing environment is a complete stand-alone machine and runs a copy of an operating system. When such processors are connected by a local area network, the processors are loosely coupled. Similarly, when such processors are connected by a switch, the processors are tightly coupled. Communication between the processors in either of the above-described connections is done through a message passing protocol. Each processor resource, i.e. memory, storage, file systems, IP addresses, etc., in a shared-nothing operating system are not simultaneously accessed, used, or shared—only one processor at a time may own or use the resource. The Microsoft Windows® operating system is an example of a shared-nothing operating system.
In contrast to the shared-nothing multi-processor environment, there are shared file systems which allow all interconnected processors and associated servers to share and use the same file system. This includes servers with different operating systems. An example of a shared file systems includes a network file system in the form of a distributed file system that supports access to files and directories located on remote computers, and treats those files and directories as if they were local. More specifically, operating system commands can be used to create, remove, read, write, and set file attributes for remote files and directories.
It is known in the art that a computer operating with a shared-nothing operating system does not typically function with a shared file system. However, a shared-nothing environment may co-exist with a shared file system. One example of co-existence of a shared-nothing protocol with a shared everything protocol is to install a high availability option with a shared-nothing protocol. A high availability option is a system design protocol and implementation that ensures a certain absolute degree of operational continuity during a given measurement period. This form of co-existence adds a shared-nothing functionality to a shared file system. More specifically, all processors in such a layered environment have access to the shared file system, but only one processor may own or use the file system at a time. This reflects the shared-nothing operating system ignorance of the shared data environment. Accordingly, there is a need to enhance access to and sharing of objects in the shared file system in a co-existence environment, such as a tool to support multiple servers in the layered environment owning and using the shared file system.